carteira <- readr::read_rds("dados/carteira.rds")
risco <- readxl::read_xlsx('dados/risco.xlsx')
cotacoes <- readr::read_rds('dados/cotacoes.rds')
dplyr::glimpse(carteira)
## Rows: 3,529
## Columns: 3
## $ VALE <dbl> NA, 0.0172102476, 0.0824816167, -0.0221424526, -0.0582752221,…
## $ WEGE3.SA <dbl> NA, 0.028168914, 0.004931529, -0.018538688, -0.002777568, -0.…
## $ PETR4.SA <dbl> NA, -0.001435125, 0.048850959, -0.016438432, -0.038718922, -0…
dplyr::glimpse(risco)
## Rows: 21
## Columns: 8
## $ q1_1 <chr> "41-50 anos", "41-50 anos", "31-40 anos", "31-40 anos", "31-40 an…
## $ q1_2 <chr> "Feminino", "Masculino", "Masculino", "Feminino", "Masculino", "F…
## $ q1_3 <chr> "Técnico Administrativo", "Técnico Administrativo", "Técnico Admi…
## $ q1_4 <chr> "Diretoria Executiva de Desenvolvimento Insttucional", "Coordenad…
## $ q1_5 <chr> "Mestrado", "Mestrado", "Mestrado", "Especialização", "Mestrado",…
## $ q1_6 <chr> "11-15 anos", "6-10 anos", "6-10 anos", "6-10 anos", "6-10 anos",…
## $ q1_7 <chr> "Até 5 anos", "6-10 anos", "Até 5 anos", "6-10 anos", "6-10 anos"…
## $ q1_8 <chr> "Sim", "Não", "Sim", "Sim", "Sim", NA, "Sim", "Sim", "Não", "Sim"…
dplyr::glimpse(cotacoes)
## Rows: 5,590
## Columns: 18
## $ item <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,…
## $ ano <fct> 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 20…
## $ pe <fct> Bens imoveis, Bens imoveis, Bens imoveis, Bens imoveis, Bens i…
## $ ve <dbl> 34.57, 67.17, 48.65, 52.33, 20.67, 165.30, 1.68, 9.03, 5.38, 7…
## $ vh <dbl> 0.00, 53.87, 45.07, 52.33, 19.30, 149.10, 0.00, 9.03, 5.38, 5.…
## $ percent <dbl> -1.00, -0.20, -0.07, 0.00, -0.07, -0.10, -1.00, 0.00, 0.00, -0…
## $ x3c <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ x2c <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ it <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ cb <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,…
## $ fn <int> 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,…
## $ pa <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ cc <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ ds <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ pt <int> 9, 12, 11, 9, 10, 6, 1, 1, 3, 10, 2, 8, 2, 2, 2, 10, 9, 3, 9, …
## $ inst <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ re <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ lc <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
class(carteira)
## [1] "tbl_df" "tbl" "data.frame"
class(risco)
## [1] "tbl_df" "tbl" "data.frame"
class(cotacoes)
## [1] "tbl_df" "tbl" "data.frame"
head(carteira)
## # A tibble: 6 × 3
## VALE WEGE3.SA PETR4.SA
## <dbl> <dbl> <dbl>
## 1 NA NA NA
## 2 0.0172 0.0282 -0.00144
## 3 0.0825 0.00493 0.0489
## 4 -0.0221 -0.0185 -0.0164
## 5 -0.0583 -0.00278 -0.0387
## 6 -0.0679 -0.0195 -0.0469
head(risco)
## # A tibble: 6 × 8
## q1_1 q1_2 q1_3 q1_4 q1_5 q1_6 q1_7 q1_8
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 41-50 anos Feminino Técnico Administrativo Diretoria… Mest… 11-1… Até … Sim
## 2 41-50 anos Masculino Técnico Administrativo Coordenad… Mest… 6-10… 6-10… Não
## 3 31-40 anos Masculino Técnico Administrativo Diretor d… Mest… 6-10… Até … Sim
## 4 31-40 anos Feminino Técnico Administrativo Assistent… Espe… 6-10… 6-10… Sim
## 5 31-40 anos Masculino Técnico Administrativo Administr… Mest… 6-10… 6-10… Sim
## 6 51-60 anos Feminino Técnico Administrativo auditor Mest… 11-1… 6-10… <NA>
head(cotacoes)
## # A tibble: 6 × 18
## item ano pe ve vh percent x3c x2c it cb fn pa
## <int> <fct> <fct> <dbl> <dbl> <dbl> <int> <int> <int> <int> <int> <int>
## 1 1 2018 Bens imov… 34.6 0 -1 1 0 0 0 0 0
## 2 2 2018 Bens imov… 67.2 53.9 -0.2 1 0 0 0 1 0
## 3 3 2018 Bens imov… 48.6 45.1 -0.07 1 0 0 0 1 0
## 4 4 2018 Bens imov… 52.3 52.3 0 1 0 0 0 1 0
## 5 5 2018 Bens imov… 20.7 19.3 -0.07 1 0 0 0 1 0
## 6 6 2018 Bens imov… 165. 149. -0.1 1 0 0 0 1 0
## # ℹ 6 more variables: cc <int>, ds <int>, pt <int>, inst <int>, re <int>,
## # lc <int>
summary()Retornos da carteira:
summary(carteira)
## VALE WEGE3.SA PETR4.SA
## Min. :-0.23803 Min. :-0.20620 Min. :-0.29698
## 1st Qu.:-0.01634 1st Qu.:-0.01031 1st Qu.:-0.01438
## Median : 0.00044 Median : 0.00045 Median : 0.00000
## Mean : 0.00062 Mean : 0.00108 Mean : 0.00058
## 3rd Qu.: 0.01650 3rd Qu.: 0.01206 3rd Qu.: 0.01454
## Max. : 0.28441 Max. : 0.13894 Max. : 0.22222
## NA's :84 NA's :135 NA's :135
Gestão de Risco - Questionário:
summary(risco)
## q1_1 q1_2 q1_3 q1_4
## Length:21 Length:21 Length:21 Length:21
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## q1_5 q1_6 q1_7 q1_8
## Length:21 Length:21 Length:21 Length:21
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
Tipos de Cotações
summary(cotacoes)
## item ano pe ve
## Min. : 1 2018:1601 eletrico :1140 Min. : 0.0
## 1st Qu.:1398 2019:1591 Bens imoveis:1093 1st Qu.: 8.9
## Median :2796 2020:2398 expediente : 543 Median : 28.3
## Mean :2796 laboratorial: 535 Mean : 1340.3
## 3rd Qu.:4193 medicao : 451 3rd Qu.: 105.2
## Max. :5591 Esportivo : 413 Max. :428390.0
## (Other) :1415
## vh percent x3c x2c
## Min. : 0.0 Min. :-1.0000 Min. :0.0000 Min. :0.00000
## 1st Qu.: 0.6 1st Qu.:-0.7500 1st Qu.:1.0000 1st Qu.:0.00000
## Median : 9.6 Median :-0.3750 Median :1.0000 Median :0.00000
## Mean : 701.5 Mean :-0.4262 Mean :0.9562 Mean :0.04526
## 3rd Qu.: 41.1 3rd Qu.:-0.0600 3rd Qu.:1.0000 3rd Qu.:0.00000
## Max. :378000.0 Max. :16.0700 Max. :1.0000 Max. :1.00000
##
## it cb fn pa
## Min. :0.0000 Min. :0.0000 Min. :0.000 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:0.00000
## Median :1.0000 Median :0.0000 Median :0.000 Median :0.00000
## Mean :0.5379 Mean :0.1546 Mean :0.237 Mean :0.05564
## 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.000 3rd Qu.:0.00000
## Max. :1.0000 Max. :1.0000 Max. :1.000 Max. :1.00000
##
## cc ds pt inst
## Min. :0.0000 Min. :0.00000 Min. : 0.000 Min. :0.000
## 1st Qu.:0.0000 1st Qu.:0.00000 1st Qu.: 2.000 1st Qu.:0.000
## Median :0.0000 Median :0.00000 Median : 4.000 Median :0.000
## Mean :0.1474 Mean :0.06547 Mean : 4.687 Mean :0.471
## 3rd Qu.:0.0000 3rd Qu.:0.00000 3rd Qu.: 6.000 3rd Qu.:1.000
## Max. :1.0000 Max. :1.00000 Max. :30.000 Max. :1.000
##
## re lc
## Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.0000 Median :0.0000
## Mean :0.2612 Mean :0.2669
## 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000
##
skimr::skim()Retornos da carteira:
skimr::skim(carteira)
| Name | carteira |
| Number of rows | 3529 |
| Number of columns | 3 |
| _______________________ | |
| Column type frequency: | |
| numeric | 3 |
| ________________________ | |
| Group variables | None |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| VALE | 84 | 0.98 | 0 | 0.03 | -0.24 | -0.02 | 0 | 0.02 | 0.28 | ▁▁▇▁▁ |
| WEGE3.SA | 135 | 0.96 | 0 | 0.02 | -0.21 | -0.01 | 0 | 0.01 | 0.14 | ▁▁▇▇▁ |
| PETR4.SA | 135 | 0.96 | 0 | 0.03 | -0.30 | -0.01 | 0 | 0.01 | 0.22 | ▁▁▇▂▁ |
Gestão de Risco - Questionário:
skimr::skim(risco)
| Name | risco |
| Number of rows | 21 |
| Number of columns | 8 |
| _______________________ | |
| Column type frequency: | |
| character | 8 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| q1_1 | 0 | 1.00 | 10 | 10 | 0 | 3 | 0 |
| q1_2 | 0 | 1.00 | 8 | 9 | 0 | 2 | 0 |
| q1_3 | 0 | 1.00 | 7 | 22 | 0 | 2 | 0 |
| q1_4 | 2 | 0.90 | 7 | 87 | 0 | 18 | 0 |
| q1_5 | 0 | 1.00 | 8 | 14 | 0 | 2 | 0 |
| q1_6 | 0 | 1.00 | 9 | 15 | 0 | 4 | 0 |
| q1_7 | 0 | 1.00 | 9 | 15 | 0 | 4 | 0 |
| q1_8 | 1 | 0.95 | 3 | 3 | 0 | 2 | 0 |
Tipos de Cotações:
skimr::skim(cotacoes)
| Name | cotacoes |
| Number of rows | 5590 |
| Number of columns | 18 |
| _______________________ | |
| Column type frequency: | |
| factor | 2 |
| numeric | 16 |
| ________________________ | |
| Group variables | None |
Variable type: factor
| skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
|---|---|---|---|---|---|
| ano | 0 | 1 | FALSE | 3 | 202: 2398, 201: 1601, 201: 1591 |
| pe | 0 | 1 | FALSE | 10 | ele: 1140, Ben: 1093, exp: 543, lab: 535 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| item | 0 | 1 | 2795.72 | 1614.14 | 1.00 | 1398.25 | 2795.50 | 4192.75 | 5591.00 | ▇▇▇▇▇ |
| ve | 0 | 1 | 1340.27 | 15681.23 | 0.02 | 8.89 | 28.34 | 105.16 | 428390.00 | ▇▁▁▁▁ |
| vh | 0 | 1 | 701.48 | 11229.15 | 0.00 | 0.55 | 9.56 | 41.09 | 378000.00 | ▇▁▁▁▁ |
| percent | 0 | 1 | -0.43 | 0.48 | -1.00 | -0.75 | -0.38 | -0.06 | 16.07 | ▇▁▁▁▁ |
| x3c | 0 | 1 | 0.96 | 0.20 | 0.00 | 1.00 | 1.00 | 1.00 | 1.00 | ▁▁▁▁▇ |
| x2c | 0 | 1 | 0.05 | 0.21 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | ▇▁▁▁▁ |
| it | 0 | 1 | 0.54 | 0.50 | 0.00 | 0.00 | 1.00 | 1.00 | 1.00 | ▇▁▁▁▇ |
| cb | 0 | 1 | 0.15 | 0.36 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | ▇▁▁▁▂ |
| fn | 0 | 1 | 0.24 | 0.43 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | ▇▁▁▁▂ |
| pa | 0 | 1 | 0.06 | 0.23 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | ▇▁▁▁▁ |
| cc | 0 | 1 | 0.15 | 0.35 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | ▇▁▁▁▂ |
| ds | 0 | 1 | 0.07 | 0.25 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | ▇▁▁▁▁ |
| pt | 0 | 1 | 4.69 | 3.06 | 0.00 | 2.00 | 4.00 | 6.00 | 30.00 | ▇▂▁▁▁ |
| inst | 0 | 1 | 0.47 | 0.50 | 0.00 | 0.00 | 0.00 | 1.00 | 1.00 | ▇▁▁▁▇ |
| re | 0 | 1 | 0.26 | 0.44 | 0.00 | 0.00 | 0.00 | 1.00 | 1.00 | ▇▁▁▁▃ |
| lc | 0 | 1 | 0.27 | 0.44 | 0.00 | 0.00 | 0.00 | 1.00 | 1.00 | ▇▁▁▁▃ |
carteira_analise <- na.omit(carteira)
summary(carteira_analise)
## VALE WEGE3.SA PETR4.SA
## Min. :-0.2380303 Min. :-0.2061975 Min. :-0.2969777
## 1st Qu.:-0.0161553 1st Qu.:-0.0102900 1st Qu.:-0.0145569
## Median : 0.0003861 Median : 0.0005578 Median : 0.0000000
## Mean : 0.0007789 Mean : 0.0011484 Mean : 0.0006453
## 3rd Qu.: 0.0166091 3rd Qu.: 0.0122094 3rd Qu.: 0.0147556
## Max. : 0.2844115 Max. : 0.1389445 Max. : 0.2222221
Criando uma estrutura de dados longer
carteira_analise_longer <- carteira_analise %>%
tidyr::pivot_longer(cols = c('VALE', 'WEGE3.SA', 'PETR4.SA'),
names_to = "acoes",
values_to = "retornos")
head(carteira_analise_longer)
## # A tibble: 6 × 2
## acoes retornos
## <chr> <dbl>
## 1 VALE 0.0172
## 2 WEGE3.SA 0.0282
## 3 PETR4.SA -0.00144
## 4 VALE 0.0825
## 5 WEGE3.SA 0.00493
## 6 PETR4.SA 0.0489
risco_analise <- risco %>%
transmute(
q1_1 = factor(
q1_1,
levels = c(
"20-30 anos",
"31-40 anos",
"41-50 anos",
"51-60 anos",
"Mais de 60 anos"
),
ordered = TRUE
),
q1_2 = factor(q1_2),
q1_3 = factor(q1_3),
q1_4 = factor(q1_4),
q1_5 = factor(
q1_5,
levels = c(
"Ensino fundamental",
"Ensino médio",
"Ensino superior",
"Especialização",
"Mestrado",
"Doutorado"
),
ordered = TRUE
),
q1_6 = factor(
q1_6,
levels = c(
"Até 5 anos",
"6-10 anos",
"11-15 anos",
"16-20 anos",
"Mais de 20 anos"
),
ordered = TRUE
),
q1_7 = factor(
q1_7,
levels = c(
"Até 5 anos",
"6-10 anos",
"11-15 anos",
"16-20 anos",
"Mais de 20 anos"
),
ordered = TRUE
),
q1_8 = factor(q1_8)
)
Verificando o novo objeto `risco_analise``:
skimr::skim(risco_analise)
| Name | risco_analise |
| Number of rows | 21 |
| Number of columns | 8 |
| _______________________ | |
| Column type frequency: | |
| factor | 8 |
| ________________________ | |
| Group variables | None |
Variable type: factor
| skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
|---|---|---|---|---|---|
| q1_1 | 0 | 1.00 | TRUE | 3 | 31-: 12, 41-: 7, 51-: 2, 20-: 0 |
| q1_2 | 0 | 1.00 | FALSE | 2 | Mas: 12, Fem: 9 |
| q1_3 | 0 | 1.00 | FALSE | 2 | Téc: 20, Doc: 1 |
| q1_4 | 2 | 0.90 | FALSE | 18 | Dir: 2, Adm: 1, Adm: 1, Ass: 1 |
| q1_5 | 0 | 1.00 | TRUE | 2 | Mes: 14, Esp: 7, Ens: 0, Ens: 0 |
| q1_6 | 0 | 1.00 | TRUE | 4 | 6-1: 9, 11-: 9, 16-: 2, Mai: 1 |
| q1_7 | 0 | 1.00 | TRUE | 4 | Até: 13, 6-1: 6, 11-: 1, Mai: 1 |
| q1_8 | 1 | 0.95 | FALSE | 2 | Sim: 17, Não: 3 |
fBasics::basicStats(carteira_analise)
## VALE WEGE3.SA PETR4.SA
## nobs 3311.000000 3311.000000 3311.000000
## NAs 0.000000 0.000000 0.000000
## Minimum -0.238030 -0.206198 -0.296978
## Maximum 0.284411 0.138944 0.222222
## 1. Quartile -0.016155 -0.010290 -0.014557
## 3. Quartile 0.016609 0.012209 0.014756
## Mean 0.000779 0.001148 0.000645
## Median 0.000386 0.000558 0.000000
## Sum 2.578996 3.802362 2.136589
## SE Mean 0.000564 0.000375 0.000520
## LCL Mean -0.000327 0.000413 -0.000374
## UCL Mean 0.001885 0.001884 0.001664
## Variance 0.001054 0.000465 0.000894
## Stdev 0.032468 0.021574 0.029902
## Skewness 0.283139 -0.317256 -0.266338
## Kurtosis 6.665432 6.956479 8.008591
summary(risco_analise)
## q1_1 q1_2 q1_3
## 20-30 anos : 0 Feminino : 9 Docente : 1
## 31-40 anos :12 Masculino:12 Técnico Administrativo:20
## 41-50 anos : 7
## 51-60 anos : 2
## Mais de 60 anos: 0
##
##
## q1_4
## Diretora de Desenvolvimento Institucional : 2
## Administrador : 1
## Administrador, Diretor de Desenvolvimento Institucional : 1
## Assistente em Administração | Ouvidora | Presidente da Unidade de Gestão da Integridade: 1
## auditor : 1
## (Other) :13
## NA's : 2
## q1_5 q1_6 q1_7 q1_8
## Ensino fundamental: 0 Até 5 anos :0 Até 5 anos :13 Não : 3
## Ensino médio : 0 6-10 anos :9 6-10 anos : 6 Sim :17
## Ensino superior : 0 11-15 anos :9 11-15 anos : 1 NA's: 1
## Especialização : 7 16-20 anos :2 16-20 anos : 0
## Mestrado :14 Mais de 20 anos:1 Mais de 20 anos: 1
## Doutorado : 0
##
summary(cotacoes)
## item ano pe ve
## Min. : 1 2018:1601 eletrico :1140 Min. : 0.0
## 1st Qu.:1398 2019:1591 Bens imoveis:1093 1st Qu.: 8.9
## Median :2796 2020:2398 expediente : 543 Median : 28.3
## Mean :2796 laboratorial: 535 Mean : 1340.3
## 3rd Qu.:4193 medicao : 451 3rd Qu.: 105.2
## Max. :5591 Esportivo : 413 Max. :428390.0
## (Other) :1415
## vh percent x3c x2c
## Min. : 0.0 Min. :-1.0000 Min. :0.0000 Min. :0.00000
## 1st Qu.: 0.6 1st Qu.:-0.7500 1st Qu.:1.0000 1st Qu.:0.00000
## Median : 9.6 Median :-0.3750 Median :1.0000 Median :0.00000
## Mean : 701.5 Mean :-0.4262 Mean :0.9562 Mean :0.04526
## 3rd Qu.: 41.1 3rd Qu.:-0.0600 3rd Qu.:1.0000 3rd Qu.:0.00000
## Max. :378000.0 Max. :16.0700 Max. :1.0000 Max. :1.00000
##
## it cb fn pa
## Min. :0.0000 Min. :0.0000 Min. :0.000 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:0.00000
## Median :1.0000 Median :0.0000 Median :0.000 Median :0.00000
## Mean :0.5379 Mean :0.1546 Mean :0.237 Mean :0.05564
## 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.000 3rd Qu.:0.00000
## Max. :1.0000 Max. :1.0000 Max. :1.000 Max. :1.00000
##
## cc ds pt inst
## Min. :0.0000 Min. :0.00000 Min. : 0.000 Min. :0.000
## 1st Qu.:0.0000 1st Qu.:0.00000 1st Qu.: 2.000 1st Qu.:0.000
## Median :0.0000 Median :0.00000 Median : 4.000 Median :0.000
## Mean :0.1474 Mean :0.06547 Mean : 4.687 Mean :0.471
## 3rd Qu.:0.0000 3rd Qu.:0.00000 3rd Qu.: 6.000 3rd Qu.:1.000
## Max. :1.0000 Max. :1.00000 Max. :30.000 Max. :1.000
##
## re lc
## Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.0000 Median :0.0000
## Mean :0.2612 Mean :0.2669
## 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000
##
extraindo uma coluna da data frame:
retornos_petro <- carteira$PETR4.SA
media amostral
mean(retornos_petro, na.rm = TRUE)
## [1] 0.0005773374
mediana amostral
median(retornos_petro, na.rm = TRUE)
## [1] 0
minimo, quartis e maximo amostrais
quantile(retornos_petro, na.rm = TRUE)
## 0% 25% 50% 75% 100%
## -0.29697774 -0.01438195 0.00000000 0.01453912 0.22222214
percentis especificos: \(p_{32}\), \(p_{57}\) e \(p_{98}\)
quantile(retornos_petro, prob = c(.32, .57, .98), na.rm = TRUE)
## 32% 57% 98%
## -0.009350287 0.003712789 0.067080166
minimo entre os elementos de um vetor
min(retornos_petro, na.rm = TRUE) # mínimo dos elementos do vetor
## [1] -0.2969777
máximo dos elementos do vetor
max(retornos_petro, na.rm = TRUE)
## [1] 0.2222221
variância amostral
var(retornos_petro, na.rm = TRUE)
## [1] 0.0008882345
desvio-padrão amostral
sd(retornos_petro, na.rm = TRUE)
## [1] 0.02980326
desvio-absoluto mediano amostral
mad(retornos_petro, na.rm = TRUE)
## [1] 0.02150178
intervalo interquartil amostral
IQR(retornos_petro, na.rm = TRUE)
## [1] 0.02892107
tabyl() do pacote janitortab1 <- risco_analise |> tabyl(q1_1)
tab1
## q1_1 n percent
## 20-30 anos 0 0.0000000
## 31-40 anos 12 0.5714286
## 41-50 anos 7 0.3333333
## 51-60 anos 2 0.0952381
## Mais de 60 anos 0 0.0000000
tab2 <- risco_analise |> tabyl(q1_2)
tab2
## q1_2 n percent
## Feminino 9 0.4285714
## Masculino 12 0.5714286
tab3 <- risco_analise |> tabyl(q1_3)
tab3
## q1_3 n percent
## Docente 1 0.04761905
## Técnico Administrativo 20 0.95238095
Customizando as tabelas:
tab4 <- risco_analise |> tabyl(q1_1) |>
adorn_totals(c("row")) |>
adorn_pct_formatting(rounding = "half up", digits = 0)
tab4
## q1_1 n percent
## 20-30 anos 0 0%
## 31-40 anos 12 57%
## 41-50 anos 7 33%
## 51-60 anos 2 10%
## Mais de 60 anos 0 0%
## Total 21 100%
tab5 <- risco_analise |> tabyl(q1_2) |>
adorn_totals(c("row")) |>
adorn_pct_formatting(rounding = "half up", digits = 0)
tab5
## q1_2 n percent
## Feminino 9 43%
## Masculino 12 57%
## Total 21 100%
tab5 <- risco_analise |> tabyl(q1_3) |>
adorn_totals(c("row")) |>
adorn_pct_formatting(rounding = "half up", digits = 0)
tab5
## q1_3 n percent
## Docente 1 5%
## Técnico Administrativo 20 95%
## Total 21 100%
tab6 <- risco_analise |> tabyl(q1_2, q1_3)
tab6
## q1_2 Docente Técnico Administrativo
## Feminino 0 9
## Masculino 1 11
Customizando a tabela:
tab7 <- risco_analise |> tabyl(q1_2, q1_3) |>
adorn_percentages("row") |>
adorn_pct_formatting(digits = 2) |>
adorn_ns()
tab7
## q1_2 Docente Técnico Administrativo
## Feminino 0.00% (0) 100.00% (9)
## Masculino 8.33% (1) 91.67% (11)
tab8 <- risco_analise |>
tabyl(q1_1, q1_2, q1_3)
tab8
## $Docente
## q1_1 Feminino Masculino
## 20-30 anos 0 0
## 31-40 anos 0 0
## 41-50 anos 0 1
## 51-60 anos 0 0
## Mais de 60 anos 0 0
##
## $`Técnico Administrativo`
## q1_1 Feminino Masculino
## 20-30 anos 0 0
## 31-40 anos 5 7
## 41-50 anos 2 4
## 51-60 anos 2 0
## Mais de 60 anos 0 0
gtsummary e
flextableTabela: Variáveis Categóricas
# Pacote utilizado
library(gtsummary)
library(flextable)
tabgt01 <-cotacoes %>%
select(-c(item, ve, vh, percent, pt)) %>%
tbl_summary(
by = ano,
statistic = list(
all_categorical() ~ "{n} ({p}%)"
),
label = list(pe ~ "Grupo Licitado",
it ~ "Pesquisa de Preços (internet)",
cb ~ "Pesquisa de Preços (combinada)",
fn ~ "Pesquisa de Preços (fornecedores)",
pa ~ "Pesquisa de Preços (painel)"
),
digits = all_continuous() ~ 2
) %>%
modify_header(label ~ "**Variável**") %>%
modify_caption("TABELA 1. Estatísticas Descritivas: Variáveis Categóricas.") %>%
modify_footnote(all_stat_cols() ~ " N = total de observações do ano. n = (total de observações da variável categórica/nível) (%) = porcentagem do total de observações do ano")
tabgt01
| Variável | 2018, N = 1,6011 | 2019, N = 1,5911 | 2020, N = 2,3981 |
|---|---|---|---|
| Grupo Licitado | |||
| Bens imoveis | 486 (30%) | 229 (14%) | 378 (16%) |
| eletrico | 305 (19%) | 584 (37%) | 251 (10%) |
| Esportivo | 123 (7.7%) | 31 (1.9%) | 259 (11%) |
| expediente | 0 (0%) | 0 (0%) | 543 (23%) |
| ferramentas | 126 (7.9%) | 51 (3.2%) | 110 (4.6%) |
| laboratorial | 0 (0%) | 332 (21%) | 203 (8.5%) |
| limpeza | 9 (0.6%) | 110 (6.9%) | 269 (11%) |
| medicao | 106 (6.6%) | 103 (6.5%) | 242 (10%) |
| quimico | 252 (16%) | 76 (4.8%) | 0 (0%) |
| veterinario | 194 (12%) | 75 (4.7%) | 143 (6.0%) |
| x3c | 1,529 (96%) | 1,502 (94%) | 2,314 (96%) |
| x2c | 43 (2.7%) | 152 (9.6%) | 58 (2.4%) |
| Pesquisa de Preços (internet) | 777 (49%) | 524 (33%) | 1,706 (71%) |
| Pesquisa de Preços (combinada) | 283 (18%) | 353 (22%) | 228 (9.5%) |
| Pesquisa de Preços (fornecedores) | 484 (30%) | 425 (27%) | 416 (17%) |
| Pesquisa de Preços (painel) | 36 (2.2%) | 226 (14%) | 49 (2.0%) |
| cc | 236 (15%) | 215 (14%) | 373 (16%) |
| ds | 95 (5.9%) | 116 (7.3%) | 155 (6.5%) |
| inst | 553 (35%) | 298 (19%) | 1,782 (74%) |
| re | 705 (44%) | 677 (43%) | 78 (3.3%) |
| lc | 338 (21%) | 616 (39%) | 538 (22%) |
| 1 N = total de observações do ano. n = (total de observações da variável categórica/nível) (%) = porcentagem do total de observações do ano | |||
# as_gt(tabgt01) %>%
# gt::gtsave(filename = "tabs/tabgt01.rtf")
Tabela: Variáveis Numéricas
tabgt02 <- cotacoes %>% select(c(ano, ve, vh, percent, pt)) %>%
tbl_summary(
by = ano,
statistic = list(
all_continuous() ~ c("({median}, {mean}) ({p25}, {p75}), ({min}, {max}) ({IQR}, {sd})")
),
label = list(
ve ~ "Valor Estimado",
vh ~ "Valor Homologado",
percent ~ "Variação (%)",
pt ~ "Total de Fornecedores Participantes"),
digits = all_continuous() ~ 2
) %>%
modify_header(label ~ "**Variável**") %>%
modify_caption("TABELA 2. Estatísticas Descritivas: Variáveis Numéricas.") %>%
modify_footnote(all_stat_cols() ~ "(média, mediana) (p25, p75) (mín., máx.) (IIQ, desvio_padrão)"
)
tabgt02
| Variável | 2018, N = 1,6011 | 2019, N = 1,5911 | 2020, N = 2,3981 |
|---|---|---|---|
| Valor Estimado | (31.35, 312.32) (11.26, 96.89), (0.05, 51,293.50) (85.63, 2,147.00) | (24.88, 498.69) (7.48, 89.29), (0.04, 68,000.00) (81.81, 3,591.55) | (28.86, 2,584.92) (8.34, 128.91), (0.02, 428,390.00) (120.57, 23,643.17) |
| Valor Homologado | (13.90, 171.85) (0.70, 48.42), (0.00, 48,900.00) (47.72, 1,599.76) | (9.39, 234.05) (0.77, 39.89), (0.00, 45,444.88) (39.12, 2,074.35) | (7.73, 1,365.22) (0.49, 37.98), (0.00, 378,000.00) (37.49, 16,990.37) |
| Variação (%) | (-0.28, -0.36) (-0.70, 0.00), (-1.00, 16.07) (0.70, 0.68) | (-0.32, -0.40) (-0.70, 0.00), (-1.00, 0.17) (0.70, 0.38) | (-0.45, -0.49) (-0.80, -0.20), (-1.00, 4.07) (0.60, 0.36) |
| Total de Fornecedores Participantes | (4.00, 4.19) (2.00, 6.00), (0.00, 15.00) (4.00, 2.62) | (4.00, 4.61) (2.00, 7.00), (0.00, 30.00) (5.00, 3.08) | (5.00, 5.07) (3.00, 7.00), (0.00, 17.00) (4.00, 3.27) |
| 1 (média, mediana) (p25, p75) (mín., máx.) (IIQ, desvio_padrão) | |||
# as_gt(tabgt02) %>%
# gt::gtsave(filename = "tabs/tabgt02.rtf")
h1 <- ggplot(carteira, aes(x = VALE)) + geom_histogram()
h1
Customizando um Histograma
h1c <- ggplot(carteira, aes(x = VALE)) +
geom_histogram() +
labs(x = "Retornos",
y = "Frequência",
title = "Vale: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
h1c
Histograma
h2 <- ggplot(carteira, aes(x = PETR4.SA)) + geom_histogram()
h2
Customizando:
h2c <- ggplot(carteira, aes(x = PETR4.SA)) +
geom_histogram() +
labs(x = "Retornos",
y = "Frequência",
title = "Petrobrás: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
h2c
h3 <- ggplot(carteira, aes(x = WEGE3.SA)) + geom_histogram()
h3
Customizando
h3c <- ggplot(carteira, aes(x = WEGE3.SA)) +
geom_histogram() +
labs(x = "Retornos",
y = "Frequência",
title = "WEG: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
h3c
Histograma: Múltiplos gráficos em um painel
library(patchwork)
painel01 <- h1c / h2c / h3c
painel01
library(patchwork)
painel01 <- (h1c + h2c + h3c) + plot_layout(nrow = 2)
painel01
d1 <- ggplot(carteira, aes(x = VALE)) + geom_density()
d1
Customizando
d1c <- ggplot(carteira, aes(x = VALE)) +
geom_density() +
labs(x = "Retornos",
y = "Densidade",
title = "Vale: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
d1c
Densidade Empírica
d2 <- ggplot(carteira, aes(x = PETR4.SA)) + geom_density()
d2
Customizando
d2c <- ggplot(carteira, aes(x = PETR4.SA)) +
geom_density() +
labs(x = "Retornos",
y = "Densidade",
title = "Petrobrás: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
d2c
Densidade Empírica
d3 <- ggplot(carteira, aes(x = WEGE3.SA)) + geom_density()
d3
Customizando
d3c <- ggplot(carteira, aes(x = WEGE3.SA)) +
geom_density() +
labs(x = "Retornos",
y = "Densidade",
title = "WEG: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
d3c
Densidade Empírica: Múltiplos gráficos em um painel
library(patchwork)
painel02 <- d1c / d2c / d3c
painel02
Densidade Empírica: Múltiplos gráficos em um painel
painel02 <- (d1c + d2c + d3c) + plot_layout(nrow = 2)
painel02
Histograma com Densidade Empírica
h1_d <- ggplot(carteira, aes(x = VALE)) +
geom_histogram(aes(y = ..density..)) +
geom_density(col = "blue", size = 1.5) +
theme_minimal()
h1_d
b1 <- ggplot(carteira, aes(x = VALE)) + geom_boxplot()
b1
Boxplot: coord_flip() inverte a orientação
b1_inv <- ggplot(carteira, aes(x = VALE)) + geom_boxplot() + coord_flip()
b1_inv
Customizando
b1c <- ggplot(carteira, aes(x = VALE)) +
geom_boxplot() +
labs(x = "Retornos",
y = NULL,
title = "Vale: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
b1c
Boxplot
b2 <- ggplot(carteira, aes(x = PETR4.SA)) + geom_boxplot()
b2
Customizando
b2c <- ggplot(carteira, aes(x = PETR4.SA)) +
geom_boxplot() +
labs(x = "Retornos",
y = NULL,
title = "Petrobrás: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
b2c
Boxplot
b3 <- ggplot(carteira, aes(x = WEGE3.SA)) + geom_boxplot()
b3
Customizando
b3c <- ggplot(carteira, aes(x = WEGE3.SA)) +
geom_boxplot() +
labs(x = "Retornos",
y = NULL,
title = "WEG: Retornos das Ações") +
xlim(-0.3, 0.3) +
theme_minimal()
b3c
Boxplot: Múltiplos gráficos em um painel
library(patchwork)
painel03 <- b1c / b2c / b3c
painel03
Continuando com a usar o sistema de visualização do pacote
ggplot2
ggplot(risco_analise, aes(x = q1_1)) +
geom_bar() +
labs(title="Gráfico de Barra Simples",
x="Idade",
y="Frequência (n)")
Invertendo os eixos usando coord_flip():
ggplot(risco_analise, aes(x = q1_1)) +
geom_bar() +
labs(x="Idade",
y="Frequência (n)") +
coord_flip() +
theme_minimal()
reordenando os níveis do fator idade:
ggplot(risco_analise, aes(x = fct_rev(q1_1))) +
geom_bar() +
labs(x="Idade",
y="Frequência (n)") +
coord_flip() +
theme_minimal()
Diferenciando as categorias com cores:
ggplot(risco_analise, aes(x = fct_rev(q1_1), fill = q1_1)) +
geom_bar() +
labs(x= "Idade",
y = "Frequência (n)") +
coord_flip() +
theme_minimal()
Anotando as barras: porcentagens
risco_anot <- risco_analise |>
group_by(q1_1) |>
summarize(n = n()) |>
mutate(
pct = n / sum(n),
lbls = scales::percent(pct)
)
ggplot(risco_anot, aes(x = q1_1, y = pct, fill = q1_1)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = lbls),
vjust = -0.5,
size = 3) +
labs(x = "Idade",
y = "Frequência (n)") +
theme_minimal()
Anotando as barras: totais
risco_anot2 <- risco_analise |>
group_by(q1_1) |>
summarize(n = n()) |>
mutate(
total = n,
lbls = scales::number(total)
)
ggplot(risco_anot2, aes(x = q1_1, y = total, fill = q1_1)) +
geom_bar(stat = "identity", fill = "steelblue") +
geom_text(aes(label = lbls),
vjust = -0.5,
size = 3) +
labs(x = "Idade",
y = "Frequência (n)") +
theme_minimal()
ggplot(data = carteira) +
geom_point(mapping = aes(x = VALE, y = PETR4.SA))
ggplot(data = carteira) +
geom_bin2d(mapping = aes(x = VALE, y = PETR4.SA))
ggplot(data = carteira) +
geom_point(mapping = aes(x = VALE, y = PETR4.SA)) +
geom_smooth(mapping = aes(x = VALE, y = PETR4.SA), method = "lm", se = FALSE)
ggplot(data = carteira) +
geom_point(mapping = aes(x = WEGE3.SA, y = PETR4.SA))
ggplot(data = carteira) +
geom_bin2d(mapping = aes(x = WEGE3.SA, y = PETR4.SA))
ggplot(data = carteira) +
geom_point(mapping = aes(x = WEGE3.SA, y = PETR4.SA)) +
geom_smooth(mapping = aes(x = WEGE3.SA, y = PETR4.SA), method = "lm", se = FALSE)
ggplot(data = carteira) +
geom_point(mapping = aes(x = WEGE3.SA, y = VALE))
ggplot(data = carteira) +
geom_bin2d(mapping = aes(x = WEGE3.SA, y = VALE))
ggplot(data = carteira) +
geom_point(mapping = aes(x = WEGE3.SA, y = VALE)) +
geom_smooth(mapping = aes(x = WEGE3.SA, y = VALE), method = "lm", se = FALSE)
Tudo ao Mesmo Tempo:
library(PerformanceAnalytics)
chart.Correlation(carteira, histogram = TRUE)